package com.learner.exam.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.learner.pojo.exam.Exam;
import com.learner.pojo.exam.vo.AddExamByBankVo;
import com.learner.pojo.exam.vo.AddExamByQuestionVo;
import com.learner.pojo.exam.vo.ExamQueryVo;
import com.learner.pojo.exam.vo.PageResponse;

import java.util.List;

/**
 * @author ice2020x
 * @Date: 2023/3/7
 * @Description: 考试实体
 **/
public interface ExamService extends IService<Exam> {

    /**
     * 根据条件获取考试信息
     *
     * @param examQueryVo 条件
     * @return 考试信息
     */
    PageResponse<Exam> getExamPage(ExamQueryVo examQueryVo);

    /**
     * 根据考试id获取考试详细信息
     *
     * @param examId 考试id
     * @return 考试信息
     */
    AddExamByQuestionVo getExamInfoById(Integer examId);

    /**
     * 操作考试状态 3为删除
     *
     * @param type 操作类型
     * @param ids  id列表
     */
    void operationExam(Integer type, String ids);

    /**
     * 添加考试信息
     *
     * @param addExamByBankVo 题库实体
     */
    void addExamByBank(AddExamByBankVo addExamByBankVo);

    /**
     * 根据题目列表添加考试
     *
     * @param addExamByQuestionVo 题目列表
     */
    void addExamByQuestionList(AddExamByQuestionVo addExamByQuestionVo);

    /**
     * 修改考试信息
     *
     * @param addExamByQuestionVo 参数
     */
    void updateExamInfo(AddExamByQuestionVo addExamByQuestionVo);

    /**
     * 获取考试通过率Echart数据
     *
     * @return 数据
     */
    List<String> getExamPassRateEchartData();

    /**
     * 获取考试编号Echart数据
     *
     * @return 数据
     */
    List<String> getExamNumbersEchartData();
}
